home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-08-27 | 51.4 KB | 1,271 lines |
-
- ____aawm######################mr
- __agm################################
- __am########@PP""" ___ """P@##
- _gm#####@M"" ]### #mmww___
- _g#####P"" ___ J### #r f,"7##mw__
- _g####P" ###__a- `### ""9P**0######mw_
- _g###P" awm####M" a##*m, ##F "9#####m_
- a##@" _ """"### d## J#' ##F "M###m_
- _d##" mm ###wg#m_ ### ##MP" 0#F 9###_
- _##K ___ ###@^### ### ##__g#m 0## ___ "###,
- _##" 0### ### 0## ### "9@@" `"" ### `##Q
- 0#K ]##F 0## ## 0## aa_ mm ### a##*m, 0##
- ## J##F *@f *# ###wawm___ __" _mM### d## J#' ###
- ## J## gm#####M"_m### ### ##@"0## ##MP" _##"
- ## _"" ### J##K ### 0## ### ##__g#m ##K
- 0#_ __ aw 0#F 0## "##w_ 0## 0##w###Q "9@@" _##K
- ##_ ,####m ##L ]#Q 0## ]## ]## `*@" J## _d##"
- "##m_ ##' 7#K0#K J#Q 0## _d##" "" _d##"
- "##w_ ##, ##`##mm### J## "*" __g###"
- 9###w_ `##w##F ""P" "" __gm###M"
- "*###mw__""" __aam####P"
- ""######mww_______________aaawmm######@P"
- "9*########################@M""
- """"""""""""
-
- .oO· BigBrother V0.50ß Developers Reference Manual ·Oo.
-
- -o- Only the Updates and Command List are fully up-to-date! -o-
-
- ...the rest of the docs are not quite updated!...
-
- »!« read the updates for changes! »!«
-
- - (©) 1991-95 by ParCon Software! -
-
-
- » Release Note! «
- ·-===========================================================================-·
-
- First of all you must know that this doc is rather incomplete and will probably
- remain so until a final release version is ready or when ever I take the time.
- Sorry!
-
- Anyway, I suppose most of you people have seen some non-system monitors in your
- time I sure have, although some are for a select croud of people I still feel
- that there is not any real solution available for use. In other words most
- other software is either to old or just obsolete in some way and besides most
- good old monitors are not being updated and haven't for some time.
- (ie. ResetMon,CartMon and BeerMon) Although the 2 first are very old they are
- well programmed and still include options not found in that many new monitors.
-
- Since this is not a final version I hope you will overlook this and instead
- look at how future releases will rock ya!
-
- You should contact me if you want to discuss either ideas, updates and/or bugs.
-
- Compatible with all amigas and processors. (Auto Detection)
- Specific CPU/FPU/MMU support has been included from 68000 -> 68060.
-
- Anyway with the inclusion of a module interface you will be able to use your
- own code with this non-system environment.
-
- As you will probably notice this monitor is fearly fast, or rather should I say
- f**king 100% optimized in any and all ways. I tried to make the user interaction
- as user friendly as possible, if all fails please consider that all is non
- system programing which imposses some restriction. On the other hand I will be
- glad to update any sane request.
-
- And finally before having a cow please remember!
-
- This is ONLY an EVALUATION Version, the reason being I haven't completed all
- the code and since hardware may never come I finally decided to release a
- pee-ka-boo version. Updates will ofcourse include many new features/options.
-
- At the moment the following features are amoungst the ones included:
-
- o Absolute 680x0/68851/6888x Dis-/Assembler/Find Address. (incl 68060 & CPU32)
- o Full Screen Memory/Disassembler Dump (Both ~realtime on 68000)
- o Processor Control: BreakPoints,MemoryWatch.
- o Memory Control: Copy,Compare,Fill,Add,And,Eor,Nop,Not,Or,Sub.
- o Calculator; = <> <= < >= >,+-,*/,!&~,^<<>>,+-~,([{}])
- o CommandLine and/or Input/Prompt Parameters.
- o Inputs also default to the last errorfree parameters.
- o Extensive Normal/Deep Trainer Options.
- o Track/Cylinder/Sector/Boot Read/Write.
- o DOS0-5 Support: QFormat,Format,Install,Relabel,CD,Dir,Comment,Type,
- ReadBinary.
-
- And ofcourse many more!
-
- » Contents «
- ·-===========================================================================-·
-
- 1. Introduction
- 2. Installation
- 3. Basics / Getting Started
- 4. How to use Commands
- 5. Expressions and Arguments
- 6. General Commands
- 7. Full Screen Memory Dump
- 8. Full Screen Dis/Assembler Dump
-
- Appendices:
-
- A. Thanks
- B. Technical Information
- C. Commands Overview
- D. Updates/History
- E. Bugs/Future/Ideas
-
-
- » 1. Introduction «
- ·-===========================================================================-·
-
- Welcome to yet another monitor for the Amiga.
-
- This Install file includes all the material needed to use this Monitor.
-
- Memory Installer, Prefs, PrefsData and instructions in one single file!
- By using an Overlay File you do not need to worry about where prefs and
- all the different files needed are! Only one file to keep track of!
-
- This install system is KS1.3-3.1 Compatible. No external libraries needed!
-
- Non ECS/AGA Ntsc Computers will not get a full screen at the moment.
- New version will have different screenmodes available.
-
- Updates of this installer will probably use a pseudo AmigaGuide System.
-
- Hardware should be coming soon from Germany or Denmark.
-
- I started programming on this monitor in 1991 about the time Nordic Power
- and AR1 were being sold. And with good reason as even AR3 offers no
- competition against even a few of the before Mentioned!
-
- Inspiration to this program came from ResetMon, Cartmon and an Internal
- Monitor from some friends in tsl&rbs.
-
- This program was firstly edited and assembled on my old A500 with 1mb Ram.
- Then finally I got a Hd for this huge source and some extra Ram.
- During that period I regularyly tested it on two different 68030 Computers.
- 68EC030 40Mzh and 68030 25Mzh 10 Mb Ram!
- But then I got an A4040 and it actually worked except AGA and VBR!
- (CIA Timers always used...!)
-
- Returning Gfx Fuckups can ONLY be avoided by using Hardware. Doesn't happend
- that offen though. (Ideally: RAM Mirror of Custom Regs)
-
- Based upon several other monitors...
- ResetMon (AntiAction/Defjam&CCS/Stefan Boberg :)
- Cartmon (Utopia/The Silents/Lars Wadefalk)
- CrackMon (Pdx France)
- NorMon (Eurosoft/SR)
- Interrupter (Mzh/Testament)
- ARx (Datel Electronics)
- Sim/RomCrack
- Nordic Power (Major Rom and ZeroNine/Quadlite)
- RAM
- ROM
- ThrillKill Infos
- GhostRider (Jesper Skov)
- A-Debug (Pdx France)
- BeerMon (Carnivore/Beermacht/Tristar)
- Asm-One (Promax/Kefrens/Rune Gram-Madsen)
- And some incomplete ones from Rbs/Tsl Swe and Arcane!
-
- Even though you haven't seen most of them you haven't really missed that much
- from the users point you will not find one single non-system monitor with all
- the features you need.
-
- Basicly I began coding this monitor some time ago, the only mointor I had seen
- when we startet was Nordic Power,RomCrack,Ar1 & ResetMon. ResetMon by far the
- best but still not very useful, then we got CartMon by it's time the best of
- all but he never completed the code but by then I had a perfect idea of what I
- wanted my monitor to be like. Still not there yet...
-
- Inspiration also came from C64 music and the equivalent Amiga conversions
- by Il Scuro and PHS/Defjam&CCS.
-
- Assembled with Asm-OneV100/Asm-Too by Rune Gram-Madsen and Detron.
-
- If you have any Ideas or Find Bugs in this program!
-
- Snail - Nicholas Clarke
- Molbechsvej 17, 2.tv
- 2500 Valby
- Denmark
-
- BBS - CyberDyne (+45) 98434851
-
- AmigaNet - 39:141/144.7
- FidoNet - 2:235/211.7
-
- Internet - nclarke@datashopper.dk
-
- BigBrother is (©) Copyright by the author and was created without the use of
- any sources by others than the authors and therefor I would not appreciate
- anybody reverse enginering it and abusing any parts of the code!
-
-
- » 2. Installation «
- ·-===========================================================================-·
-
- Since this Monitor is currently only software based installation can be tidious
- at times, but it is not impossible.
-
- You must configure Memory and Activation!
-
- The following Screen Modes are/or will be optional:
- 640x256 - PAL - HiRes - OCS/ECS/AGA
- * 640x512 - PAL - HiRes Interlace - OCS/ECS/AGA
- * 1280x256 - PAL - Super HiRes - % /ECS/AGA
- * 640x512 - DBLPAL - HiRes No Flicker - % / % /AGA
- * 640x200 - NTSC - HiRes - OCS/ESC/AGA
- * 640x400 - NTSC - HiRes Interlace - OCS/ESC/AGA
- * 1280x200 - NTSC - Super HiRes - % /ECS/AGA
- * 640x400 - DBLNTSC - HiRes No Flicker - % / % /AGA
- * 640x480 - VGA - VGA - % / % /AGA
- |
- * <- Not supported quite yet... As I haven't tryed writing the needed copper
- lists required.
-
- VGA/MultiSync Copper almost possible, will be fully implemented soon.
-
- Most of the screenmodes are not useful without hardware but will be implemented
- just in case!
-
- There is also an adjustable key repeat.
-
-
- » 3. Basics / Getting Started «
- ·-===========================================================================-·
-
- One of the first this you will noticed when entering BigBrother is a titlebar
- and a text area covering the the rest of the screen.
-
- The clock displayed on the main screen (title bar) is the realtime clock.
- If you do not have battery backed up clock the CIA TOD will be displayed
- instead.
- The CIA's TOD is controlled by the system in a very weird way, it resets
- the TOD at 65536 (16-bit) instead of the maximum of 16777216 (24-bit).
- (This varies on different KickStarts)
-
- The monitor uses four full screen buffers for your activities.
- Two Editing screens which you can use freely to execute commands.
- One Screen used for Dumps,Some Menus,etc. in order not to change the two
- editing screen which can be irritation if you have important data there.
- One Screen used for notes with the size of one screen.
-
- The following screen related keys are available:
- F1...Toggle between screen 1 and 2.
- F2...Toggle Ins/Ovr
- F3...Toggle last screen 3 and current.
- F5...Clear Screen.
-
- Besides using the Arrow Keys to move the cursor around the screen you can
- also use the mouse to position cursor.
- Most of the Shift/Alt cursor keys also have functions which are following:
- The mouse will also work on the fullscreen Memory/DisAsm Dump!
-
- Normal
- Left Move Cursor Left
- Right Move Cursor Right
- Up Move Cursor Up
- Down Move Cursor Down
- Backspace Backspace
- DEL DEL
-
- DEL will erase the key to the left and move all characters left of cursor.
- Backspace will erase key under cursor and move all characters left of cursor.
-
- Shift
- Left Goto EndOfLine
- Right Goto Begining of Line
- Up History Backwards
- Down History Forward
- Backspace Delete From Cursor to Begining of Line
- DEL DEL from Cursor to EndOfLine
-
- ALT
- Left Goto Begining of Next Parameter
- Right Goto Begining of Last Parameter
- Up Goto First Command Line Upwards (Jumps over Output Lines)
- Down Goto First Command Line Downwards -"-
- Backspace Clear Screen
- DEL Insert Space
-
- As most of you probably use different programs you might be acustomed to the
- keys having diffenrent functions from program to program so you will soon be
- able to configure the keys. (Normal/Shift/Alt)
-
- Keyboard KeyMap is selectable for different countries as there are some
- differences between for example Germany,France and Usa!
- (10 Different Countries available, and soon a whole KeyMap Prefs like the
- program SetKey V2.1)
-
- The last 20 command lines are stored in a history buffer.
- This will be updated so you have optional history for editor and a seperate
- for Dis/Asm.
-
-
- » 4. How to use Commands «
- ·-===========================================================================-·
-
- Most commands work with parameters either following the command or prompted.
- Everywhere in the monitor both upper and lower case chars are recognized,
- unless other is specified (Shortkeys).
-
- example:
- Q $20000 $30000 $40000
-
- or you can just execute this line
-
- Q
- BEG>$20000
- END>$30000
- DEST>$40000
-
- All used parameters are store and will be displayed as defaults in prompts.
- If an error occurs while parsing commandline the parameters are then prompted
- with the parsed parameters as default so you don't have to enter all
- parameters again, only the wrong ones.
-
-
- » 5. Expressions and Arguments «
- ·-===========================================================================-·
-
- The following operators can be used to define expressions.
- Expression calculated with priority, this ofcourse includes parenthesis.
- Full 68000/32bit Muls/Divs.
- Parenthesis: ([{}])
- Actions: = <> <= < >= >
- Operands: + - * / ! & ~ ^ << >>
- Signs: + - ~
- Bases: Decimal,Hex,Binary,Ascii,Octant
- Operand Priority (equal priorites are treated from left to right)
- = <> <= < >= > Equal,Not Equal,Less or Equal,Less,Greater or Equal,Greater
- +- Add,Sub
- */ Mul,Div
- !&~ Or,And,Eor
- ^<<>> Sqr,Logical Shift Left,Logical Shift Right
- +-~ Plus,Minus,Not
- ([{}]) Parenthesis
- Bases Supported
- $ Hex
- % Binary
- "'` Ascii
- @ Octant
- Decimal (default)
- CpuRegs
- d0-d7,a0-a7,sp,ssp,usp,sr,pc,vbr. (more will be added if demanded)
-
- Symbols are supported but can not be defined from commandline yet.
-
- The Expression routine is semi-recursive which gives extra speed and easy
- expansion. (Asm1 uses the same basic method)
-
- Besides expressions, strings can also be parsed. Strings including spaces
- should be parsed with ` , ' or ". (ie. "String String")
-
-
- » 6. General Commands «
- ·-===========================================================================-·
-
- X
- Exit monitor and return to state computer was in before activation.
-
- ? [expression]
- Prints results of the expression.
-
-
-
- READ COMMAND LIST FOR ALL COMMANDS!
-
-
-
- MONITOR COMMANDS:
-
- Dis/Assembler
-
- Supported processors:
- 68000
- 68010
- 68020
- 68030/68EC030
- 68040/68LC040//68EC040
- 68060/68LC060//68EC060
- 68851
- 6888x
- Cpu32
-
- No indepth information about any motorola processor can be found in this
- documentation as you should get the correct reading material for this.
-
- SI (Search Instruction)
- Searching for Instructions may seem quite funny for mortals but it is
- infact very useful in some instances. You want to know all places where
- a certain address is accessed or maybe where branches to a specific address
- are.
-
- SI
- INSTRUCTION>Bcc *
- Will search for ages for all Branches to all Addressed!
- SI
- INSTRUCTION>Bne.L $200000
- Will Search memory arround $200000 for branches.
-
- Searching for "M* *(,*)" is not Possible Only "Instr. *(,*)"?!
-
- All PC realative commands will be handled accordingly, for information
- about MC680xx Programming in general You should get the appropreate
- documentation from Motorola!
-
- (This Command was First Made by AntiAction(Defjam & CCS) for His ResetMon)
-
- I haven't been able to check my dis/assembler for new effective address errors
- because of the simple fact that all the assemblers I have tried don't assemble
- correctly and some not at all!
-
- DevPac V3.04 (BaseDisplacement and OuterDisplaycement fucks up!)
- Asm-One V1.25 (ZPC is a motorola standard!!)
- PhxAss V3.71 (ZPC is a motorola standard!!)
- Sas/C V6.50 Assembler ("data generation must occur in reloc section" this was
- written for each new <ea> mode instruction line... HuH? I'm going mad!
- I suspect it needed a section directive but who cares)
-
- I guess you will have to wait on Detron or myself...
-
-
- » 7. Full Screen Memory Dump «
- ·-================================-·
-
- Cursor Keys = Moves Cursor arround.
- Shift Cursor Up/Down = Page Up/Down.
- Shift Cursor Left/Right = Leftest/Rightest.
- Alt Cursor Left/Right = Sub/Add 1 to Memory and redisplay.
- Alt Cursor Up/Down = Cursor Top/Mid/Bottom.
-
- Pressing the mouse button will move cursor to current mouse position.
-
- F1..Byte Dump
- F2..Word Dump
- F3..Long Dump
- F4..Ascii Dump
-
- Amiga-J : Jump Addr.
- Amiga-L : Last Addr.
- Amiga-G : Grab Addr.
- Amiga-Q : QuickJump
-
- Amiga-D : DisDump
-
- ShiftAmiga 1-0 Marks Address
- Amiga 1-0 Jump Marks
-
-
- » 8. Full Screen Dis/Assembler Dump «
- ·-=======================================-·
-
- Cursor Keys = Moves Cursor arround.
- Shift Cursor Up/Down = Page Up/Down.
- Shift Cursor Left/Right = Leftest/Rightest.
- Alt Cursor Left/Right = Sub/Add 1 to Memory and redisplay.
- Alt Cursor Up/Down = Cursor Top/Mid/Bottom.
-
- Pressing the mouse button will move cursor to current mouse position.
-
- Amiga-J : Jump Addr.
- Amiga-L : Last Addr.
- Amiga-G : Grab Addr.
- Amiga-Q : QuickJump
-
- Amiga-M : MemDump
-
- ShiftAmiga 1-0 Marks Address
- Amiga 1-0 Jump Marks
-
- Disassemble Up/Page Up will in almost all cases be 100% correct. The method
- used is the same as the one Rune Gram-Madsen used for Asm-One except this
- one works for 680x0 processor instructions. (CPU,MMU & FPU)
-
- Ascii/Hex options will be re-added in the new dis routine. (Removed in the new
- disassembler)
-
-
-
-
-
- DISK COMMANDS:
-
- ?.? Test Device (TD)
- The read the device I.D. instruction was made following the instructions from
- Commodore (Hareware Ref. Man. Rev3). But there seems to be a problem or at
- least some mis information from Commodore. Anyway hope you can use it.
-
- ·. .··. .··. .··. .··. .··. .··. .··. .··. .··. .
- ·..· ·..· ·..· ·..· ·..· ·..· ·..· ·..· ·..· ·..·
-
- Appendices
-
-
- » A. Thanks «
- ·-===========================================================================-·
-
- Special Thanx to
- Marc Friis-Møller, an old programmer friend of mine and he was involved in
- the beginning of this project. Eventhough most of his routines have been
- rewritten they helped start the monitor to what it is today. He eventually
- sold his Amiga because he had to concentrate on Uni.
- (Org Work: Calculator,CopperSetup,InitRoutines,OutputRoutines,MemPeeker
- and MainLoop Routines)
- Morten W. Rasmussen, my oldest and closest programmer friend we made the rest
- of the monitor. Mostly together like the first Disassembler and MemoryDump
- routines.
-
- And as it turned out I'm the last active programmer on this project and now
- 99% of all code in this program has been done by yours truly, Nicholas C.
-
- Jim Benjamin Luther, when I first met him he didn't know what Copper were,
- but I soon changed that. Eventually we made our TrackLoaders arround the same
- time and he taught me the value of CIA timers.
-
- Jesper Bach, for ideas and testing the monitor on his A500/030/25Mhz back
- when I only used an A500/000/7Mhz.
-
- Rune Gram-Madsen, for making the Coolest Macro Assembler and also for some
- useful help. (ie. backwards Disassembly, optimized recursive parsers, etc.)
-
- Mads Henriksen, a lot of useful ideas/help and a rather large source for... :)
-
- Felix Nielsen, for abusing my modem accounts :) On the other hand people give
- me Dis like there was no tomorrow.
-
- Michael Pendec, help and ideas, Hd/disk background information and sources.
- And for some vital info about Hd's which saved me from a 124mb Hd Fuckup!
-
- Carnivore/Beermacht/Tristar
- Would never have figured that hardware clock out if you hadn't released the
- source for Beermon. The 68000-68040/68882/68851 listings were very useful
- in testing my assembler/disassembler.
-
- Emiel Lensink, for The Guru, version 3.00. I use converted data from that
- program but I have not used any of his code whatsoever! Took me some time
- to convert into compressed source data form. If any updated data is released
- I will for sure have to make a converter.
-
- Silents&Crionics, I'll be back for lunch, smoke me a kiper! Hope you are
- enjoying California...
-
- Inspiration from:
- Silents & Crionics - Kefrens - TRSI - Scoopex - Phenomena - Flash Production
-
- Dedicated to:
- Il Scuro!&PHS/Defjam & CCS - Dr.Pablo/The Champs - Rob!/Quartex - Nomad
- Phil Douglas - BadBoy/Trilogy/PDX - Conqueror/Defjam & CCS/Fairlight
- BlackHawk/Trilogy/PDX - AntiAction/Defjam & CCS - 'Blackie'/Fairlight
- Gaston/Horizon/Fairlight - Mok/Classic/Prestige - FFC/Vision Factory/Skid Row
- EuroSoft/Skid Row - KontraSoft/World of Wonders - Samir/Zenith/Prestige
- Renegade/Fairlight - Heat/TarkusTeam/Kingdom - Beermacht/Tristar
- Major Rom & Zeronine/Quadlite - MZP/RSI
-
-
- » B. Technical Information «
- ·-===========================================================================-·
-
- Keyboard:
- Using Level2 Interrupt, Handles upto 256 Char+Status (Shift,Alt,Caps,Ctrl,
- CBM & Amiga) Software. The Amiga Hardware CIA that handles the keyboard
- only takes a maximum of 10 Codes. The Keyboard must receive a Handshake
- when ready a Code, Thus a Low followed by a High Pulse.
- (The Handshake Waits 85ms as Stated by Commodore, which should make the
- keyboard handling 100% on all Keyboards) The 85ms wait is ofcourse performed
- with the CIA! As should all Important loops if the are to be MC680xx
- compatible! Has been tested on difficult keyboards.
-
- DiskDrive:
- Handles all Four Standard Drives, all Timing is ofcourse done with CIA!
- Has been tested with all four drives. Although the ID that devices return
- are in a very cryptic manner! But drive ID has no important use in Big
- Brother at this stage.
- Only Normal DOS Formats are allowed at this time unfortunatly. (DOS0)
-
- The First MC68000 Disassembler Made For This Program Almost Worked.
- But The System Had To Be Recoded For Use In Assembler and Search Instruction,
- But Mostly For MC68040,MC6888x & MC68551 Support. And I Found The First Book
- Had Many Errors! So If You Want To Play With Motorola Processors or
- Assembler You Should Buy "Programmer's Reference Manual" From Motorola
- Themselves, Even though it also has alot of errors :).
-
- Pmove <ea>,PSR 68030/68851 has the same upcode but both are recognized
- different because the 68851 also has PCSR.
- cpRestore has an opcode conflict with Ptest.
-
-
- » C. Commands Overview «
- ·-===========================================================================-·
-
- The following commands were made most resently and therefor are almost
- garantied and tested.
-
- Please notice almost all instructions can be used as follows:
-
- .DTS.W $0 $80000 $300000 : DeepTrainer Start
-
- or
-
- .DTS ; DeepTrainer Start
- BEG>$0
- END>$80000
- DeepTrainer Size Type (B)yte (W)ord (L)ong>Word
- DeepTrainer Requires $00090000 Bytes!
- BUF>$300000
-
- When using imputs the last used shortcut or input values will be displayed
- as default starting inputs.
-
- This is only available where parameters are always needed.
-
- The "$" is required as the default (currently only) standard number is
- regarded as decimal! ($=Hex/%=Binary/@=Octant/Default=Decimal)
-
-
- Screen
- ·-========-·
-
- F1..Toggle between screen 1 and 2.
- F2..Toggle Ins/Ovr
- F3..Toggle last screen 3 and current.
- F5..Clear Screen.
-
-
- The [] is for parameters that are not needed when executing a command this
- means that you will either be input prompted or that command will do some
- else without parameters (ie. show info)
- Try different combinations I'm not going to write more at this point.
-
-
- External Commands
- ·-===================-·
-
- SDCR [StartAddr] [EndAddr] : Search Decruncher
- MR : Module Ripper
-
- Doc's are located somewhere in this archive. Other External Commands will
- not use default commandstring but creator defined ones.
-
-
- Disk/File Commands
- ·-====================-·
-
- RT [addr] [devnr] [strk] [shead] [trks] : Read Track
- RH [addr] [devnr] [strk] [shead] [trks] : Read Head
- RS [addr] [devnr] [ssector] [sectors] : Read Sector
- RBOOT [addr] [devnr] : Read BootBlock
- WT [addr] [devnr] [strk] [shead] [trks] : Write Track
- WH [addr] [devnr] [strk] [shead] [trks] : Write Head
- WS [addr] [devnr] [ssector] [sectors] : Write Sector
- WBOOT [addr] [devnr] : Write BootBlock
- CC [devnr] : Read/Correct/Write BootChkSum
- TD : Test Drive (Shows ID of all 4 drives)
- SYNC [sync] : Change Sync
- QFORMAT [dev#] : QuickFormat Disk
- FORMAT [dev#] : Format Disk
- INSTALL [dev#] : Install Disk
- RELABEL [dev#] : Relabel Disk
- CD [Device/Path] or [/] : Change Directory
- DIR [Device/Path] : Show Content of Directory
- COMMENT [Path/FileName] : Comment Dir/File
- TYPE [Path/FileName] : Type File
- RB [Path/FileName] [StrAddr] [EndAddr] : Read Binary
-
- Remarks:
- o Devnr is 0-3
- o Head is 0/1
- o Trks can be negative in which case the tracks will be loaded/saved backwards!
-
-
- Trainer
- ·-=========-·
-
- TS[.b|.w|.l] [StrAddr] [EndAddr] [Val] : Trainer Start
- T [Val] : Trainer Continue
- TF : Trainer Flush
- TP : Trainer Plot
- TSM [Val] : Trainer SetMatched
- TFD [StartAddr] [EndAddr] : Trainer FindAddrDec
- TFA [StartAddr] [EndAddr] : Trainer FindAddr
- DTS[.b|.w|.l] [SAddr] [EAddr] [BAddr] : DeepTrainer Start
- DTE [Value] : DeepTRainer Equal
- DTC : DeepTrainer Changed
- DTU : DeepTrainer UnChanged
- DTD : DeepTrainer Delta
- DTP : DeepTrainer Plot Status
- GC : Game Trainer Menu
-
-
- System Information
- ·-====================-·
-
- CPU : CPU Dependent Info
- FPU : FPU Dependent Info
- MMU : MMU Dependent Info
- SI : Hardware Config/Information
- TIME : Time Info (ie. Hardware Clock)
- CIAA : Show CIAA Regs and Info
- CIAB : Show CIAB Regs and Info
- LASTGURU : Show LastGuru Info
- GURU [GuruNr] : Show Guru Info
- AVAIL : Show Memory Regions (Short)
- RAM : Show Memory Regions and Info
- DEVICES : Show system Devices
- INTERRUPTS : Show system Interrupts
- LIBRARIES : Show system Libraries
- PORTS : Show system Ports
- ;RESIDENT : Show system Resident
- RESOURCES : Show system Resources
- SEMAPHORES : Show system Semaphores
- TASKS : Show system Tasks
-
-
- Monitor Commands
- ·-==================-·
-
- ? [expression] : Expression
- A [Addr] : Mc680x0-Assembler
- ADD[.b|.w|.l] [SAddr] [EAddr] [Data] : Add Memory with Data
- AND[.b|.w|.l] [SAddr] [EAddr] [Data] : And Memory with Data
- B : Show Breakpoints
- BS [Addr] : Set Breakpoint
- BD [Addr] : Delete Breakpoint
- BDA : Delete All Breakpoints
- C [StartAddr] [EndAddr] [DestAddr] : Copy Memory
- @D [Addr] : Mc680x0-Block Disassembler (16 lines)
- D [Addr] : Mc680x0-Disassembler (fullscreen)
- EOR[.b|.w|.l] [SAddr] [EAddr] [Data] : Eor Memory with Data
- FILL[.b|.w|.l] [SAddr] [EAddr] [Data] : Fill Memory with Data
- FAQ [SAddr] [EAddr] [FAddr] : Mc680x0-Find Address SingleAddr
- FAQ[.b|.w|.l] [SAddr] [EAddr] [FAddr] : Mc680x0-Find Address -"- + FixedSize
- FA [StrAddr] [EAddr] [FAddr] : Mc680x0-Find AddrArea (OprSize)
- FA[.b|.w|.l] [StrAddr] [EAddr] [FAddr] : Mc680x0-Find AddrArea (Opr-/Com-Size)
- FB [BranchAddr] : Find Branch (Byte/Word)
- FBL [SAddr] [EAddr] [BranchAddr] : Find BranchLong (Byte/Word/Long)
- FI [SAddr] [EAddr] [Ascii] : Find Mc680x0 Instruction
- F[.b|.w|.l] [SAddr] [EAddr] [Data] : Find Data
- FS [SAddr] [EAddr] [Ascii] : Find String
- FT [SAddr] [EAddr] [Min] [Max] [MinLen] : Find Text
- FIFF [SAddr] [EAddr] : Find IFF Form Structure. (IFF,etc.)
- FCOP [SAddr] [EAddr] : Find Possible CopperList
- G [Address] : Jump into memory (JMP)
- J [Address] : Jump into memory (JSR) with freezer on
- KEYB : Will Display Pressed Raws/Keys/Asciis
- @M[.b|.w|.l|.a] [SAddr] [EAddr] : MemoryDump Show/Edit (Hex/Ascii)
- M[.b|.w|.l|.a] [Addr] : Block MemoryDump (Hex/Ascii)
- MWP[.b|.w|.l] [Addr] : List/Add Memory WatchPoint(s)
- MWD [Addr] : Delete Memory WatchPoint
- MWA : Delete All memory WatchPoints
- MWS : Show Memory WatchPoint(s) Status
- MWOFF : Memory WatchPoint(s) Off
- MWON : Memory WatchPoint(s) On
- NOP [StartAddr] [EndAddr] : Nop Memory
- NOT [StartAddr] [EndAddr] : Not Memory
- OR[.b|.w|.l] [SAddr] [EAddr] [Data] : Or Memory with Data
- SUB[.b|.w|.l] [SAddr] [EAddr] [Data] : Sub Memory with Data
- Q[.b|.w|.l] [SAddr] [EAddr] [DAddr] : Compare Memory (Byte/Word/Long)
- R : Show Mc680x0 Dependent Registers
- ST [steps] : Trace with subroutines
- TR [steps] : Trace without subroutines
- X : Exit Monitor
-
-
- Misc
- ·-======-·
-
- PP : Printer Settings Menu
- RAMTEST [StartAddr] [EndAddr] : MemoryTest ($00,$55!,$AA!,$FF)
- RESET : byebye...
-
-
- » D. Updates/History «
- ·-===========================================================================-·
-
- Version 0.10
- We started 3 people on a very ambitious undertaking and the result back in
- 1990 was not very impressive, at that time Nordic Power and ActionReplay 1
- were the only freezer available. On the other hand software monitors like
- ResetMon and CartMon where much better. But as we got on I became the only
- one still coding on the software and as I could clear see that I was getting
- better and better, and the real updates where made when I got my A4040 in the
- middle of 1993 and I felt that my coding experience was much better than when
- we started so I started re-coding it all and so after making the mc680x0
- dis/assembler updates things are looking up. All shaggy routines that have
- not been updated have been removed and will only be re-included upon recoding.
-
- The leap in version number here reflects the long period of almost no
- progress.
-
- Version 0.33
- Recoded The Disassembler for full 680x0 support.
- Assembler coded using the same tabels as disassembler, not complete!
- Keyboard routine recoded and break (CRTL-C) Implemented.
- (The Break is performed by the interrupt routines so no times is used for
- checking in working loops!)
- MemoryWatchPoints (Byte/Word/Long).
- DeepTrainer (Byte/Word/Long).
- BreakPoint (The broken instruction is not executed because I haven't made a
- 100% full prof 680x0 Tracer yet..!)
-
- Version 0.40
- Input routine totally recoded and many new options implemented. (like OS3.1)
- FullScreen Disassembler routines recoded for input support. (like ASM1)
-
- Version 0.41
- Improved/Optimzed the copper scrolling routine used. (Blitter is too slow!)
-
- Version 0.42
- Recoded the copper,sprite inits and removed that ugly pointer from Marc!
- (The old bugs involving sprites should be corrected!, plus the copper can
- easily be expanded to VGA,DBLPAL,NTSC,SHIRES when I make the copperlists!)
- Pointer now functioning 100% unlike the prior. (pis off!)
- Recoded the sprite handlers. (Pointer speed, S-Hires Compability etc.)
- Recoded the cursor flashing and also included reset cursor on key pressed.
- Removed and Recoded the Disassembler Upwards in the fullscreen DIS.
- Removed a bug in the fullscreen dis that made the computer crash, or rather
- it disappeared after having recoded most of the fullscreen dis.
-
- When the monitor was activated the system would guru upon lauching other
- programs outside ASM1-V100 but this is not the fact anymore!
- Probably because most of the code has been recoded!
-
- Version 0.43
- Fixed a little input bug, would copy and display #0 in input display area.
- Mouse can now be used in the fullscreen DIS. (just like in MemDump!)
- Trashed the old remaining routines for the right mouse menus and removed
- the 'Help' option because it was again made by Marc and crashed at will!
- DisAssembles one line backwards 100% and fast! (like ASM1 and BeerMon!)
- Cursor position was disturbed upon re-entry! Now cursor position is the
- same as before exiting.
- DisAssembles one page backwards 100% and fast! (Faster than ASM1!)
-
- Version 0.45
- Calculate "?" output recoded and improved. 1st line is the UnSigned longword.
- Second line is signed (+/-), it autodetects if the number is a byte, word or
- long value. (The output will maybe be user optional but not currently)
- Assembler bug removed on extraword instructions and in parameter tester.
- Asm now recognizes all strings for Movec and PMove. (cool string recog.)
- Asm now assembles Cache Instructions. (Cinv and cPush)
- Asm bug in size caused random size. (which could be seen by assembling the
- instruction in Fullscreen from different X-positions...hehe!)
- Asm does Pflush, Ptest and Pload now.
- Asm bug in <ea> parameter tester fixed.
- Asm bug in reverse direction <ea> parameter tester, it was reversed :)
-
- Version 0.46
- Fixed the CIA Timer so it actually works now. (2 different included;Key&Disk)
- Recoded some of the disk routines, starting the drive wouldn't work correctly
- on da my A4040 :)
- Recoded Store/Restore original tracks upon exit.
- Recoded Start/Stop motor and added some more CIA waits only critical on 68040
- (Uses Device ID for DD/HD test and drive connected test)
- Read/Write Track/Cylinder/Boot should work. Correct BootChkSum recoded.
- Read/Write Sector with trackbuffer for normal speed dos operations.
- Fixed movem so it works, even with backwords reglists. and dual :- operands
- and a fullscreen input assembler mixup error.
-
- Version 0.48
- Find Address (FA) implemented.
- Find Address bug removed <ea110> group was disassembled instead of address
- checked. I overlooked a single branch for the left sided <ea>'s.
- Optimized screen update routine, so now full screen updating should be
- almost equal on A500 and A4040. (68010 vs. 68040 tested)
- Optimized clear screen routines, and some parts of the fullscreen
- memory/disassembly dumps.
- Fullscreen disassembler page up/down optimized. (now acceptable on 68000)
- Flicker in top/bottom line when repeated scrolling up/down fullscreen
- finally removed! Only a bother on slow computers.
- Find Address will subtract the operand size when encountering an address
- register indirect with predecrement mode -(an).
- Find Address bug removed. FA would index odd address when more than 1 address
- found. The reason I didn't find it so fast was because the 68040 can access
- odd addresses and as far as I know also run instructions on odd addresses.
-
- Version 0.49
- TextBuffer routines have been altered so screen scroll is hyperfast because
- I only scroll pointers for copperdisplay and now also for textbuffers.
- Recoded the title structure and routines. Multiple titletexts possible.
- Changed the keyboard routine so Shift,Alt,Lcom,Rcom,CTRL will not affect
- Key Repeat.
- Input enabled in the TitleBar with almost the same options as normal input.
- Alt plus any character now works. (2 code lines misplaced)
- Time in titlebar will not appear in on other than the main title. Time is now
- display update only when seconds change (each second that is) and the calc
- routines have been slightly modified for faster update.
- CTRL-C break fixed so it also works in my 256 character buffer and still acts
- in the same way as the system keymap. Exactly 100% the same as system thing!
- Added Amiga special keys.
- AMIGA-X will clear display in input.
- AMIGA-Q will restore the input string/var as it was upon input start. (Undo)
- Added some options for the full screen memory dump
- AMIGA-J / Jump Addr.
- will jump to input address.
- (default none, just a clean input)
- AMIGA-L / Last Addr.
- will jump to the lasted address stored with AMIGA-Q.
- AMIGA-G / Grab Addr.
- will jump to input address.
- (default address is the current cursor position)
- AMIGA-Q / QuickJump
- will jump to input address.
- (default address is pointer address at cursor position)
- AMIGA-J/G/Q address will be store for use with AMIGA-L (32 address history)
- AMIGA-1-0 / Mark Address
- SHIFT AMIGA-1-0 Jump to Marked Address
- All the above AMIGA and SHIFT AMIGA actions have been implemented in the
- fullscreen disassembler dump aswell.
- AMIGA-Left/Right Cursor will move left or right in the pointers buffer from
- QuickJump (AMIGA-Q) from disassembler screen as there may be more than one.
- (Mem/Dis Dump Option)
- Fixed a small Disassembler bug. (Involving new <EA>; No Indirect Memory Modes)
- New <ea> modes on/off. (improves Dis/Asm/FA speed if you are working on
- 68000-68010 programs)
- Cpu/Mmu/Fpu Select (Makes Dis/Asm/FA work better for specific Cpu/Mmu/Fpu
- configurations)
- CTRL-C and ESC break implemented in
- FindAddress (FA)
- Block Memory Dump (@M)
- Block Disassembler Dump (@D)
- Input Routine
- I though the chip memory swapped was restored incorrectly thus altering
- 1 or 2 longwords in the chip memory. All setup/startup routines have been
- re-coded and I haven't had any problems since. (Didn't check before some
- time after I re-coded the routines)
- ALT-Del and ALT-Backspace added to input routine.
- Added Pointer Blank when a key is pressed, including Key Repeat. (optional)
- Identification of DMA/Gfx Chip (Agnus/Alice)
- Identification of Display Chip (Denise/Lisa)
- Identification of CPU
- (68000/68010/68020/68EC030/68030/68EC040/68LC040/68040/68EC060/68LC060/68060)
- Identification of FPU
- (68881/68882/68040/68040+68882/68060/68060+68882)
- Identification of MMU
- (68851/68EC030/68030/68LC040/68040/68LC060/68060)
- Command History Buffer Totally Recoded. (the old routines didn't work 100%)
- History Added to Input Routines.
- FPU support added to Disassembler (Including Up/Page Up) and to FindAddress.
- ExceptionBase patched on 68010+. (optional)
- This should enable Monitor from being activated in most non-system
- applications. (68010+ required!)
- Updated/Added Misc Memory Routines (No Data Parms)
- Copy Memory, Compare Memory, Nop Memory, Not Memory
- Updated/Added Misc Memory Routines (Data Parms)
- Eor (Add,And,Fill,Or & Sub)
- Only one general memory command at this point.
- Works better with new calculator.
- Just have to add a miscdata parser. (implemented in v0.49c)
- 68000/32bit integer math routines implemented.
- Coded a new expression routine from scratch! Now it actually works!
- The first one made by MFM didn't actually work very well.
- Recoded the routine that handles parameters, it didn't work as it was
- supposed. (now handles ascii which can be used in findtext or as data
- for general memory routines)
- Old calculator/getvarb/expression routines have been totally removed!
- Multiple string parameters possible.
- (ie. FT $10000 $20000 "he" `j!`)
- Expression has been completed concerning normal calculation operations.
- Removed a little bug in expression which rendered priority semi-functional.
- Input replaced in most working Commands.
-
- Changed version because I gave it away to some people for minor beta testing.
-
- Version 0.49c
- CPU Store/Info should be completed. (except most 68060 info)
- MMU Store/Info should be completed. (except 68060 info)
- New Input routine totally replaced the old one. (many new options)
- FA improved, commandsize also used.
- ie. .FA $0 $80000 $40003
- Move.L #0,$40000
- Move.L #0,$40001
- Move.L #0,$40002
- Move.L #0,$40003
- New CPU dependent showregs completed (except 68060), and old one removed.
- Input HistoryAdd bug removed.
- Removed some faulty references to the old input routine by the misc memory
- commands. (leason kids! never do nonsystem hacks! hehe)
- Added miscdata parser. (ie. EOR,etc.)
- Added some Misc Memory Routines: Add,And,Fill,Or & Sub.
- (Eor was implemented some time ago to test the parsers and the input routine)
- FindData completed and tested.
- Updated/Recoded FindText, FindIFFForm, FindCopper, FindTextBlock.
- Added Time Info, which reads hardware clock if present. (Also used in titlebar
- ofcoz but as optimized tod clock. And it will eventually also be used in the
- dos commands)
- ExceptionBase patch improved and a bit more safe. (Now Works after Reset)
- MemoryWatchPoint also works with Patch.
- FA expanded. (Optional FA Single Address and Size)
- FindBranch (FB) Recoded. It will no longer search for Branch.Long020+ instead
- FindBranchLong (FBL) was added with Start/End Parameters. (Searches for B/W/L)
- Esc/Ctrl-C break support added to FindBranch/FindBranchLong.
- Added some System Info (Devices,Interrupts,Libraries,Ports,Resident
- Resources,Semaphores,Tasks)
- FPU Store/Info/ReStore completed. (Same for all FPU's)
- Progress Address Display in titlebar. Displays current address reached.
- Available in the following commands:
- FindAddress
- Help Included. Just press -Help- and use Cursor Up/Down or ShiftCursor Up/Down.
- Added LastGuru,Guru,RamTest.
- Recoded and Optimized some of the Output routines.
-
- Changed version coz I gave it to some people.
- Tested it on different 020/030 computers in Herning at The Party IV.
-
- Happy New Year 1994-95!
-
- Version 0.49d / 0.49e / 0.49f / 0.49g
- Added TitleMsg - Asm1 Style. (for error's and other stuff)
- needs to be improved (ie. mouse button press)
- Recoded internal memory driver. (currently only used by trainer)
- Recoded Trainer Start/Continue and the other trainer routines. Also improved
- so when the previous search did not reach the end address the next search
- pass goes higher and higher, ofcoz only if there is free memory.
- And SearchDec was recoded so it now uses the same routines as the FA
- commands!
- (PS: Word and Long have always searched even and odd addresses! maybe
- optional soon)
- Added trainer commands also in commandline.
- TrainerStart(TS),TrainerContinue(T),TrainerFlush(TF),TrainerPlot(TP)
- TrainerSetMatched(TSM),TrainerFindAddrDec(TFD) and TrainerFindAddr(TFA).
- Removed small bug in input when no prompt text was used.
- TrainerMenu redesigned/recoded with the new trainer routines.
- Added CpuRegs support to calculator
- d0-d7,a0-a7,sp,ssp,usp,sr,pc,vbr. (I will probably add more but first I
- ponder if I should include cpu/mmu/fpu check on regs.)
- Recoded Asm
- Instruction parser/instr. recognizer.
- Condition Test/Asm. FPU Conditions added!
- Size Get/Default/Test/Asm
- Misc Test/Asm
- Parses Immediate Operands. (level1)
- Misc Operands, the basic <ea>'s and CpuRegs (Cpu/Mmu/Fpu/Cache). (level2)
- Absolute Operands. (level3)
- Installer Recoded. Installer only 171120 (source 90771)
- Recoded installer only 58016 (source: 63462)
- Object Installer 245818 -> 146988 with updated installer code.
- Removed bug in Monitor Startup. On 68000, 68010 Cpu Store was run.
- MMU (In Use) fixed for different bits. Bit31 (68851/68030) Bit15 (68040/68060)
- Level3 <ea> Parser almost complete. Except Index Handling.
- Pre-Recognizes: Absolute,An,PC/ZPC,Rn.Size*Scale. Resulting in either
- 680x0 EA's or 68020+ EA's.
- Fpu operands are recognized but no Fpu instructions are assembled as of yet!
- (Still looking for a Cpu applicable algoriths for converting ascii->float)
- Fixed an old bug in the disassembler concerning the new ea, but I never saw
- the error because I don't have any assembler that handles the specific
- addressing mode that was wrongly handled.
- Index Operand Supressed in Indirect Memory would show the following
- ([bd,An,Od])/([bd,PC,Od])/([bd,ZPC,Od])
- Instead of
- ([bd,An],Od)/([bd,PC],Od)/([bd,ZPC],Od)
- Clock/FreeMem is now updated immediatly when main screentitle is restored.
- Fixed small Disassembler bug. ( $xxxx.w(pc) displayed as $xxxx.b(pc) )
- Optimized lots of small routines in the disassembler.
- Shorted the DisLen routines down. (Backwards,etc.)
- Merged DisLen/DisTest and hence removed a small bug in my new DisTest for
- <ea>'s.
- Added CiaA/CiaB Reg/Bit Info.
- Assembling enabled in fullscreen disassembler again.
- Assembling enabled from commandline again. And improved so you can edit the
- address directly, instead of executing 'a' with your new address.
- FA.B/FA.W/FA.L operations renamed to FAQ.B/FAQ.W/FAQ.L. (FAQ.Size will only
- search instructions accessing address with requested size. FAQ searches
- instructions accessing address ignoring size but address must ofcoz be equal)
- FA.B/FA.W/FA.L added. They will add the size to address and will match all
- instructions accessing between <address-instr.size> and <address+FA.size>.
- (FA matches instructions accessing between <address-instr.size> and <address>)
- AsmTest simulates lenghts. This means that pc's will be tested and assembled
- correctly and that the assembler is now ready for macro-assembler expansion.
- Fixed $xxxx(pc) if used as destination register.
- (Didn't notice because it seems only Btst, possibly others, supports PC
- addressing modes in destination)
- Recoded/Optimized Output Routines.
- Added bitfield support and tester for it mis/-use. (<ea>{offset:width})
- Removed NoParm Len Error. (Instruction was overwritten by the next assembled)
- Plotter and Help now supports Tabulation. (Help now looks normal!)
- Asm bug fixed in my asm cpureg recognition (SRP was mistaken for SR), and
- fixed a 5RW bug in dis/asm.
- FlushDisable now recognized for PMove (PMoveFD). Added PMove Size Support.
- FPU Id added, Fpu Enabled for Id=1. (optional)
- Asm bug Fixed in direction. (A few times in 1/3/4 parm, only used in 2 parm)
- Fixed a bug in disassembler, new routines trashed vital DataReg.
- Finished/Debugged the Assembler so now it should work properly!
- M680x0 Assembler has now been completed!
- Dis/Asm tabs restructured/updated concerning instructions allowed CPU/MMU/FPU.
- Added M68060 dis/asm support. Movec regs for M68EC040. CPU32 dis/asm support.
- Breakpoint now traces the broken instruction and reinstall breakpoint.
- (This can/will cause some problems where the trace is ignored by certain
- instructions this will be corrected using special case handling in the future)
- Disk Routines recoded slightly and BaseReg'ed(A4).
- Input support added to Read/Write Track/Cylinder/Sector/Boot.
- Fixed small bug in inputroutine. (When not spc stripping ascii strings)
- Removed an old bug where Bitplanes and/or Sprites would not be shown.
- (Since this was rarely the case I never tried to remove it, but I
- accidentally found a "system friendly" program that ran from WB so I could
- more easily fix it)
- Added following DOS0-5 commands:
- QuickFormat/Format/Install/Relabel.
- CD/Dir. (Doesn't use/support DirCache Dos4-5)
- Comment.
- Type.
- RB (ReadBinary) (EndAddress curently ignored)
- Optimized small part of the asciiconvert->screen routine and replaced A4 usage.
- Recoded and Optimized MemoryDump output routine. (Thus no A4 usage anymore)
- (68010: .@m 0 $80000 00:09:18:93 -> 00:08:43:31 Scrolled MemDump)
- Recoded Ram command and added Avail command. (Replaced some A4 usage)
- Replaced A4 usage in memory (fill,add...), help screen and disscrup routines.
- FindAddress (FA) improved so it now supports searches on doubleindexed <ea>'s.
- (Optionable, swichted off until installer prefs updated)
- FindInstruction implemented. This command currently only compares wildcard text
- to disassembled text. (*=WildCard and ?=WildChar)
- DisDump will now activate imput instruction without having to press cursorkeys.
- Added Go(G),Jump(J),Reset.
- Recoded Level2 entry. Registers now show program and not my level2.
- Added Trace without subroutines(TR) and Trace with subroutines(ST).
- Fixed small problem, Page/InsOvr was not displayed after rewriting of the title
- routines.
- StackFrame handling (68010+) added. (SingleStepTrace now works)
- MemoryWatch trace exception now able to be switched off after use.
-
- Version 0.50
- None Yet.
-
- Assembler was tested with the following sources:
- M68000.Asm
- M68030mmu.Asm
- M68040.Asm
- M68851.Asm
- MNewModes.Asm
- Dis/Assembler should now dis and asm correctly.
-
- 68EC030MMU/68EC040MMU instructions will be added.
-
-
- » Assembler «
- ·-===============-·
-
- I made the first line-assembler some years ago and innocent as I was it never
- got finished. The first 68000 disassembler used some tabs and since my plan
- was that both dis/assembler should use the same tabs I recoded the
- disassembler for 680x0 and the new tabs very awesome and very fast! So the
- second line-assembler worked a little bit more I actually managed until the
- advanced and new <ea>'s, and had to face that even though my tabs for the
- dis/asm were good enough but I had to approach it in another fashion.
- I decided that the 3rd version should be in almost macro-assembler style and
- it is very fast and also semi-recursive. I was also motivated to continue with
- my new parser idea after I learned that Promax uses the same technique in
- his expression and assembler parsers.
-
- Most Cmp's removed in parse. Even though it's recursive I can't asses if the
- assembler is REALLY fast compared to Asm-One or DevPac, because in it's
- current state it does not support labels etc.
- Parse1 only parsed when # found.
- Parse2 Skipped as soon as an error encountered or an valid parameter parsed.
- Either case is done very fast and with no loops or compareloops.
- SP EQUR A7
- Scale must be 1,2,4 or 8. No symbols will be accepted, only integer Scales.
-
- Mode recognized:
- Parser1
- #immediate
- Parser2
- Dx:Dy
- Dx-Dy
- (Rx):(Ry)
- Movem RegList (D0-D7/A0-A7)
- FMovem RegList (Fp0-FP3/FP7)
- FPn (FP0-FP7)
- FPCR Regs (FPCR/FPSR/FPIAR)
- Dn
- An
- (An)
- (An)+
- -(An)
- CpuRegs (Cpu/Mmu/Fpu/Cache)
- Parser3
- Absolute.W/Absolute.L (Absolute).W/(Absolute).L
- (d16,An) d16(An)
- (d8,An,Xn) d8(An,Xn)
- (bd,An,Xn.Size*Scale) bd(An,Xn.Size*Scale)
- ([bd,An,Xn.Size*Scale],od) bd([An,Xn.Size*Scale],od)
- ([bd,An],Xn.Size*Scale,od) bd([An],Xn.Size*Scale,od)
- (d16,PC) d16(PC)
- (d8,PC,Xn) d8(PC,Xn)
- (bd,PC,Xn.Size*Scale) bd(PC,Xn.Size*Scale)
- ([bd,PC,Xn.Size*Scale],od) bd([PC,Xn.Size*Scale],od)
- ([bd,PC],Xn.Size*Scale,od) bd([PC],Xn.Size*Scale,od)
- Parser4
- <ea>{offset:width} ; bitfield instructions
-
- This assembler is done in a way that an label parser can be added and I have
- a symbol assembler.
- Guess the next step will be a new improved Asm-One V2.0 680x0 Macro Assembler
- with totally new code. (Based on the original one by Promax)
-
- Both the Disassembler and Assembler were programmed using the following data
- books
- Sybex: Programming the 68000 by Steve Williams.
- Motorola: Programmer's Reference Manual. 68000-68040,6888x,68851,Cpu32.
- Mc68020 User's Manual.
- Mc68030 User's Manual.
- Mc68040 User's Manual.
- Mc68060 User's Manual. (68060 Reference Manual)
- Mc68881/882 User's Manual.
- Mc68851 User's Manual.
- I also used some others for some parse/expression algorithms. And for reference
- the Source-Code for Asm1. (the original that is!)
-
-
- » Update Information «
- ·-========================-·
-
- Started on the external user interface for external utilities. Currently only
- for a ModuleRipper, DeCruncherSearch and Copy Program. (maybe also the
- gfxripper, sampleripper & mempeeker)
-
- ModuleRipper should be ExoticRipper if all goes as planned.
- Acopy1.2 or Safe II included as Copy Program. Depends on weather I can get the
- source for Safe II by M.Pendec or maybe i'll get time to code my own.
- For the CruncherSearch I made some code for about 10 different crunchers and
- I will probably spread the source so people can make their own external
- searchers. (ie. ATN!,ICE!,FUCK,RNC,BHC3,CrM!,CRM2,PP20...)
-
-
- » E. Bugs/Future/Ideas «
- ·-===========================================================================-·
-
- The software has been tested on various CPU/MMU/FPU configurations, but if any
- problem occurs on your system please report so!
- Including your hardware configuration.
-
- All CPU/MMU/FPU dependent routines have been coded/based according to eight
- different Motorola(tm) manuals and is hopefully correct but I can't be 100%
- sure as I haven't got the resources to test all configs.
-
- Known Problems:
- CIA trashed upon exit.
- VBR Patch not very stable under system. On the other hand I don't think I'm
- supposed to do a patch on the system. :)
- 68030/68EC030 identify doesn't detect a 68EC030. Seems like Motorola just
- undefined certain opcodes instead of branching to exception error vectors.
- No CPU/MMU Restore.
-
- Future:
- Finish: Printer Options. (Currently PAR: used for ParNet)
- Recode: MemPeeker and GFXRipper.
- Recode: CruncherSearch. (probably external module)
- Recode: SampleSearch and ModuleRipper. (probably external module)
- Recode: window. mousemenus and pull down menus. (removed for now)
- Code: CIAregs Store/Restore.
- Code: Simple Snap like OS3.0+ text snapper. (semi implemented)
- Convert to BaseReg(A4) useful for eg. code/data only sections.
- Add Special And Status to command history.
-
- Other releases will probably include a macro-assembler with some code from
- this monitor. Rather depends on how much time I want to use. Anyway most
- routines made for this monitor can be used in an editor/monitor/debugger/
- assembler as long as they are converted into system friendly routines.
-
- ·. .··. .··. .··. .··. .··. .··. .··. .··. .··. .
- ·..· ·..· ·..· ·..· ·..· ·..· ·..· ·..· ·..· ·..·
-
- BigBrother...
- ...The Holy Most Remarkable Freezer in This Spiral Arm of The Galaxy!
-